home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 088 / wcdos13.arc / CDMON.DOC < prev    next >
Text File  |  1985-12-01  |  8KB  |  204 lines

  1.  
  2.                 1 December, 1985
  3.                 Merry Christmas from 102/1101!
  4.  
  5. - New Version of CDMON -
  6.   ====================
  7.  
  8. The current revision level of CDMON is v 1.10.  That's  what
  9. is included in this ARChived package.  Updates have also been
  10. made to the documentation.  If you have the need to,  send
  11. hate mail, flames,etc. to me at the address mentioned below.
  12.  
  13. The v 1.10 CDMON is command line configurable.  That makes life
  14. a little easier for most SYSOPs if their systems are normally in
  15. a  state of transition (as mine is).  In any case, command line
  16. arguments should have been included in the original;  here they
  17. are!
  18.  
  19. Also included in this ARC is a small program called '5SALARM'.  It
  20. is used to count down the 5 seconds before warm boot if you ctrl-c
  21. out of Fido or have an abnormal errorlevel on exit.  Read the docs
  22. on how to set up your AUTOEXEC or BBS batch files for more details.
  23.  
  24. - What to use CDMON for -
  25.   =====================
  26.  
  27. CDMON was designed primarily as a carrier detect monitor
  28. program for safety after execution of the SYSOP '0' command.
  29. The Fido '0' command allows a user with SYSOP
  30. priveleges to exit from Fido with ERRORLEVEL set to the
  31. value specified by the command line '/W' parameters.  The
  32. effect then is that the user is now connected thru the
  33. modem to the computer.
  34.  
  35. Even though the user is physically connected thru the
  36. switched network to the computer, the computer doesn't
  37. even know he's there yet. A couple of things must be
  38. done before the user can communicate at the DOS level.
  39.  
  40. 1.  A logical connection must be made from the COM port
  41.     to the console I/O device.  The DOS 'CTTY' command
  42.     will suit our purpose here.
  43.  
  44. 2.  While the console I/O is redirected to the modem COM
  45.     port, we must make sure that no one other than the SYSOP
  46.     user (the one currently connected) can gain access to
  47.     the system at the DOS level.  This might be a major
  48.     reason that so few SYSOP's use the '0' command for
  49.     remote access.  The only was to assure that no other
  50.     users can connect to the modem is to allow only one
  51.     use of the '0' command per Fido session.  That is, if
  52.     carrier drops after the SYSOP has executed the '0',
  53.     then the system either resets or restarts Fido.  This
  54.     is the method used to prevent unauthorized access thru
  55.     the DOS prompt.
  56.  
  57. - Great! What does CDMON do then (you might ask) -
  58.   ==============================================
  59.  
  60. Initialization
  61.  
  62. CDMON is installed as a KEEP process, that is, always resident
  63. once invoked.  CDMON installs its own vector into the AUX timer
  64. interrupt vector (interrupt 1CH).  After the vector is set up,
  65. CDMON does a special exit to DOS, allowing DOS to keep it in RAM.
  66. The previous contents of the AUX timer vector are preserved and
  67. that entry point is invoked using a far call if INT 1CH is invoked
  68. thereafter.  The use of the AUX timer vector allows CDMON to
  69. get control periodically.
  70.  
  71. Execution
  72.  
  73. Now CDMON gets control every 54.9 milliseconds from the system
  74. clock routine in ROM (AUX timer).  Every 'tick', the modem status
  75. register is sampled for the DCD (Data carrier detect) signal.  If the
  76. signal has gone inactive, it means that for some reason, the
  77. call originator has stopped sending carrier.  This really means
  78. that the sender has either disconnected or has lost the phone line.
  79. CDMON waits for this condition to be true for a some time
  80. (depending on how you set it up) and then executes a warm boot.
  81. If DCD picks up again within the 'window time', then the count is
  82. reset and operation continues as before.  The 'window time' is set
  83. to about 270 millseconds in the source file attached.  It is suggsested
  84. that you set this time to a VERY low value.  It is unlikely with
  85. modern 'intelligent' modems that you'd need any timeout at all, but
  86. the timer is available so that if you're using a modem which does
  87. not time out carrier drop itself, CDMON can wait to see if DCD
  88. activates again in that interval.
  89.  
  90. How to set parameters for CDMON
  91. ===============================
  92.  
  93. 1.  CDMON v 1.1 is configurable from the command line invoking it.
  94.  
  95.     The program accepts the following command line format:
  96.  
  97.     CDMON  C/p  M/m  T/t
  98.  
  99.     where p = either '1' or '2', indicating COM1 or COM2
  100.           m = DCD mask from 1 to 128, same as for good old Fido
  101.           limit is 255
  102.           t = DCD drop timer value in 55 mS increments
  103.           limit is 255 (which would be about 14 Seconds ...).
  104.  
  105.  
  106.  
  107. To change the default parameters (only if you REALLY need to).
  108. =============================================================
  109.  
  110. 1.  Find the following variables in the CDMON.ASM source and alter
  111.     the default values according to your needs.
  112.  
  113. msr -  the I/O port address of the Modem Status Register
  114.        3FEH  for COM1,  2FEH  for COM2.  Non-IBM users may
  115.        need other ports for the MSR default.  MSR1 and MSR2
  116.        are supplied.
  117.  
  118. DCD - the default bit mask for the DCD signal in the Modem Status Register.
  119.       128 - for Hayes and compatible modems.
  120.       32  - can be used (DSR) in modems which do not correctly
  121.             support the DCD signal (like the modem I was using).
  122.       You may want to experiment if you're not sure of which bit in
  123.       the MSR is the DCD bit.  You only have to try 8 times !
  124.  
  125. TIMEOUT - the default window interval in milliseconds.
  126.           Suggested value of 1 for modems which condition DCD.
  127.           Set to 100 mS to 1500 mS for modems which do not.
  128.  
  129. 2.  Assemble / Link / LTL the program.
  130.  
  131.     It is suggested that you use MASM 2.0 as your assembler.
  132.  
  133.     masm  cdmon,cdmon,cdmon,cdmon;        assemble it.
  134.  
  135.     link  cdmon,cdmon;                    link it.
  136.  
  137.     exe2bin cdmon cdmon.com;              make it a .COM file.
  138.  
  139. 3.  How to set up your Fido batch file for use with CDMON.
  140.  
  141. Shown below is a sample 'auto' batch file which allows safe
  142. use of the '0' command from Fido to get to the DOS prompt.
  143.  
  144. ; the AUIOEXEC.BAT file:
  145.  
  146. path c:\;c: .... whatever
  147. CD FIDO
  148. FIDO_IBM 32/V /Y 100/L 100/F 100/D 150/K 5/w ; 5/w causes ERRORLEVEL 5
  149.                                              ; to occur on EXIT from FIDO
  150.                                              ; after the '0' command is done.
  151. IF ERRORLEVEL 5 GOTO CHECKIN
  152.  
  153.                          ; abnormal exit path.
  154.  
  155. 5SALARM                         ; count down the warm boot in
  156.                          ; seconds like 5..4..3..2,etc.
  157.                          ; if you don't hit a key, the
  158.                          ; system will warm boot.
  159.  
  160. :CHECKIN                     ; '0' command exit path.
  161.  
  162. cdmon c/1 m/128 t/10                 ; invoke CD Monitor with these
  163.                          ; args:  COM1, DCD mask = 128,
  164.                          ; 550 mS DCD timeout.
  165.  
  166. CTTY COM1                     ; redirect all CONsole I/O to COM1.
  167.                          ; the system will warm boot if
  168.                          ;  DCD is lost for 550 mS.
  169.   Remarks -
  170.   =======
  171.  
  172. The files contained in this ARC are:
  173.  
  174. CDMON.ASM -   the assembly language source file.
  175. CDMON.COM -   the CDMON command (defaults for my machine).
  176. CDMON.DOC -   this doc file.
  177. RESET.COM -   a 'reset' command you can use remotely to restart
  178.               your system.  Invoke it on your Fido machine
  179.               when you're ready to disconnect.
  180. 5SALARM.COM - 5 second warm boot alarm in the the event of abnormal
  181.               exit from Fido (like ^C'ing or disk full).
  182.               Waits for a keystroke within 5 seconds, else it warm
  183.               boots the system.
  184.  
  185. I probably don't need to mention that you should be running ANSI.SYS
  186. as your terminal driver (or something compatible).  I use some ANSI
  187. strings in both programs ...  ANYWAY, please use ANSI.SYS !!
  188.  
  189. I know of a couple other DCD monitor programs out there in Fido-land.
  190. 'WATCHDG1' comes to mind first.  I don't believe that program has
  191. any DCD conditioning.  You might try CDMON as an alternative !!
  192.  
  193. Don't forget to set the source file constants up for your environment
  194. before you install CDMON.  The constants in the attached source are
  195. the ones I'm using here at Zaphod's Node.  They work fine for me.  My
  196. Fido is set up with a U.S. Robotics Courier 2400 modem on COM1.
  197.  
  198. Please direct inquiries to:
  199.  
  200. Matthew Zilmer
  201. Fido 102/1101
  202. 919 W. Baseline Rd.
  203. Claremont, CA.  91711-1508          Data phone:  714-626-1843
  204.